The computing industry has seen many advances in recent years, and such advances have produced a multitude of products and services. Computing systems have also seen many changes, including their virtualization. Virtualization of computer resources generally involves the abstraction of computer hardware, which essentially isolates operating systems and applications from underlying hardware. Hardware is therefore shared among multiple operating systems and applications each isolated in corresponding virtual machines (VMs). The result of virtualization is that hardware is more efficiently utilized and leveraged, and Virtual Desktop Infrastructure (VDI) is becoming a more promising solution. With VDI, users access over a network connection personal desktops provided by virtual machines running on remote servers. Each VM is a complete execution environment, and the server provides a user interface over the network connection so that user inputs and outputs are communicated between the user and the VM. It is desirable to provide a desktop experience to the end-user when using remote services similar to the experience users have when using a traditional system where programs execute locally. The quality of the user experience can vary based on many underlying factors such as round-trip latency or network bandwidth.
Among many critical applications for remote delivery, remote video playback has been identified by solution providers as one of the most important applications. Remote video playback is also one of the most commonly used applications while being susceptible to performance degradation due to stress placed in the underlying resources required for live video delivery, such as server computing power and downlink bandwidth. During video delivery, a multitude of resources can become a bottleneck. While there are some measures to find the utilization of some of these resources, there is not an accurate way of measuring the video performance and quality on the remote side. Past approaches have used the analysis of incoming network data in an attempt to correlate network performance and video quality. This approach is not accurate as it might happen that the protocol on the server side reduces the bit rate of the video due to limited bandwidth or because there may be some packets for player skins, window appearance, or other screen updates, that affect video performance.
It is in this context that embodiments of the invention arise.